package com.syxp.pda.core.dao;

import java.io.Serializable;
import java.util.List;

import com.syxp.pda.core.command.QueryFilter;
import com.syxp.pda.core.web.PagingBean;

public interface GenericDao<T ,PK extends Serializable> {

	public T save(T paramT);

	public T update(T paramT) ;
	
	public T merge(T paramT);

	public T get(PK paramPK);

	public void remove(PK paramPK);

	public void remove(T paramT);

	public void evict(T paramT);

	public List<T> getAll();

	public List<T> getAll(PagingBean paramPagingBean);

	public List<T> getAll(QueryFilter paramQueryFilter);

	public List<T> getAll_no(QueryFilter paramQueryFilter);

	public List<T> findByHql(String paramString,
			Object[] paramArrayOfObject);

	public List<T> findByHql(String paramString,
			Object[] paramArrayOfObject, PagingBean paramPagingBean);

	public List<T> findByHql(String paramString,
			Object[] paramArrayOfObject, int paramInt1, int paramInt2);
	
	public Object executeHql(String hqlStr , Object[] paramArrayOfObject) ;
	
	public Long getTotalProperty(final QueryFilter filter) ;
	
}
